/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.projeto.session.classes;

import br.com.projeto.entity.Emprestimo;

import br.com.projeto.persistence.exception.JPADeleteException;
import br.com.projeto.persistence.exception.JPAInsertException;
import br.com.projeto.persistence.exception.JPAQueryException;
import br.com.projeto.persistence.exception.ViewException;
import br.com.projeto.persistence.jpa.DaoGenericImpl;

import java.util.List;




public class EmprestimoSessionImpl extends DaoGenericImpl<Emprestimo>  {

        
        public Emprestimo consultarLivro(String isbn) throws Exception {
            Emprestimo emprestimo=null;
               if ( isbn!=null){
                 try {   
                        emprestimo=(Emprestimo) this.getListObjectByParameter(isbn,"namedquery");
                        return emprestimo;
                } catch (Exception ex) {
                       throw new JPAQueryException ( ex.getMessage());
                }
               }else return null;
        }

        
        public List<Emprestimo> listEmprestimos() throws JPAQueryException {
                return this.getObjects("falta namedquery");
        }

        
        
        private boolean validaEmprestimo (Emprestimo emprestimo) {
                if (emprestimo !=null) {
                        return true;
                } else {
                        return false;
                }
        }

        public boolean emprestarLivro(Emprestimo emprestimo ) throws JPAInsertException {
                if (this.validaEmprestimo(emprestimo)) {
                        this.save(emprestimo);
                        return true;
                } else {
                        throw new JPAInsertException("Estado inválido");
                }

        }

        public boolean removeEmprestimo(Emprestimo emprestimo) throws JPADeleteException {
                try {
                        if (this.validaEmprestimo(emprestimo)) {
                                this.delete(emprestimo);
                              
                        }
                       
                    
                } catch (Exception ex) {
                        throw new JPADeleteException(ex.getMessage());
                }
                return true;
        }
        
        
}
